/**
 ***********************************************************************************************************
 * 
 ***********************************************************************************************************
 * @file RBDefaultStream.h
 ***********************************************************************************************************/

#ifndef __RBDEFAULTSTREAM_H__
#define __RBDEFAULTSTREAM_H__

#ifdef  HEADER_ONCE
#pragma HEADER_ONCE
#endif

#ifdef  HEADER_MSG
#pragma HEADER_MSG(RBDefaultStream.h)
#endif

/***********************************************************************************************************
 * Includes
 ***********************************************************************************************************/
#include "RBStream.h"
#include "RBFile.h"

/***********************************************************************************************************
 * Forward declarations
 ***********************************************************************************************************/

/***********************************************************************************************************
 * Classes
 ***********************************************************************************************************/

class RBDefaultStream : public RBStream
{
public:
                    RBDefaultStream    ();
                   ~RBDefaultStream    ();

    virtual void    WriteBuffer (const void* pBuffer, uint32 uiSizeInBytes);
    virtual void    ReadBuffer  (void* pBuffer, uint32 uiSizeInBytes);

    // Flushes / Loads data from disk
    virtual bool    Open        (const RBString& strFilename, RBFile::OpenMode eFileMode);
    virtual void    Close       ();

private:

    RBFile*         m_pFile;
};

/***********************************************************************************************************/

#endif // __RBDEFAULTSTREAM_H__
